home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / hplip / firmware.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2009-10-28  |  4KB  |  148 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __version__ = '2.4'
  5. __title__ = 'Firmware Download Utility'
  6. __mod__ = 'hp-firmware'
  7. __doc__ = 'Download firmware to a device that requires downloaded firmware to function. (Note: Most printers do not require the use of this utility).'
  8. import sys
  9. import getopt
  10. import gzip
  11. import operator
  12. import time
  13. import os
  14. from base.g import *
  15. from base import device, status, utils, tui, module
  16. from prnt import cups
  17.  
  18. try:
  19.     mod = module.Module(__mod__, __title__, __version__, __doc__, None, (INTERACTIVE_MODE, GUI_MODE, NON_INTERACTIVE_MODE), (UI_TOOLKIT_QT4,), True, True)
  20.     mod.setUsage(module.USAGE_FLAG_DEVICE_ARGS, extra_options = [
  21.         ('Use USB IDs to specify printer:', "-s bbb:ddd, where bbb is the USB bus ID and ddd is the USB device ID. The ':' and all leading zeroes must be present.", 'option', False),
  22.         ('Seconds to delay before download:', '-y<secs> or --delay=<secs> (float value, e.g. 0.5)', 'option', False)], see_also_list = [
  23.         'hp-plugin',
  24.         'hp-toolbox'])
  25.     (opts, device_uri, printer_name, mode, ui_toolkit, lang) = mod.parseStdOpts('y:s:', [
  26.         'delay='])
  27.     device_uri = None
  28.     printer_name = None
  29.     usb_bus_node = None
  30.     usb_bus_id = None
  31.     usb_device_id = None
  32.     silent = False
  33.     delay = 0
  34.     for o, a in opts:
  35.         if o == '-s':
  36.             silent = True
  37.             
  38.             try:
  39.                 (usb_bus_id, usb_device_id) = a.split(':', 1)
  40.                 log.debug('USB bus ID: %s' % usb_bus_id)
  41.                 log.debug('USB device ID: %s' % usb_device_id)
  42.             except ValueError:
  43.                 log.error('Invalid USB IDs: %s' % a)
  44.                 sys.exit(1)
  45.  
  46.             if len(usb_bus_id) != 3 or len(usb_device_id) != 3:
  47.                 log.error("Invalid USB IDs '%s'. Must be the format: bbb.ddd" % a)
  48.                 sys.exit(1)
  49.             
  50.             usb_bus_node = a
  51.             mode = NON_INTERACTIVE_MODE
  52.             continue
  53.         if o in ('-y', '--delay'):
  54.             
  55.             try:
  56.                 delay = float(a)
  57.             except ValueError:
  58.                 log.error('Invalid delay value. Must be numeric (float) value. Setting delay to 0.0')
  59.                 delay = 0
  60.  
  61.             mode = NON_INTERACTIVE_MODE
  62.             continue
  63.     
  64.     if mode == GUI_MODE:
  65.         if not utils.canEnterGUIMode4():
  66.             log.error('%s -u/--gui requires Qt4 GUI support. Entering interactive mode.' % __mod__)
  67.             mode = INTERACTIVE_MODE
  68.         
  69.     
  70.     if mode in (GUI_MODE, INTERACTIVE_MODE):
  71.         mod.quiet = False
  72.     
  73.     if mode == GUI_MODE:
  74.         
  75.         try:
  76.             from PyQt4.QtGui import QApplication
  77.             from ui4.firmwaredialog import FirmwareDialog
  78.         except ImportError:
  79.             log.error('Unable to load Qt4 support. Is it installed?')
  80.             sys.exit(1)
  81.  
  82.         mod.showTitle()
  83.         device_uri = mod.getDeviceUri(device_uri, printer_name, filter = {
  84.             'fw-download': (operator.gt, 0) })
  85.         app = QApplication(sys.argv)
  86.         dialog = FirmwareDialog(None, device_uri)
  87.         dialog.show()
  88.         
  89.         try:
  90.             log.debug('Starting GUI loop...')
  91.             app.exec_()
  92.         except KeyboardInterrupt:
  93.             sys.exit(0)
  94.  
  95.         sys.exit(0)
  96.     
  97.     mod.showTitle()
  98.     if usb_bus_node is not None:
  99.         log.debug('USB bus node: %s' % usb_bus_node)
  100.         (device_uri, sane_uri, fax_uri) = device.makeURI(usb_bus_node, 1)
  101.         if not device_uri:
  102.             log.error('Invalid USB Device ID or USB bus ID. No device found.')
  103.             sys.exit(1)
  104.         
  105.     else:
  106.         device_uri = mod.getDeviceUri(device_uri, printer_name, filter = {
  107.             'fw-download': (operator.gt, 0) })
  108.     
  109.     try:
  110.         d = device.Device(device_uri, printer_name)
  111.     except Error:
  112.         log.error('Error opening device. Exiting.')
  113.         sys.exit(1)
  114.  
  115.     
  116.     try:
  117.         if delay:
  118.             time.sleep(delay)
  119.         
  120.         
  121.         try:
  122.             d.open()
  123.             d.queryModel()
  124.         except Error:
  125.             e = None
  126.             log.error('Error opening device (%s). Exiting.' % e.msg)
  127.             sys.exit(1)
  128.  
  129.         fw_download = d.mq.get('fw-download', 0)
  130.         if fw_download:
  131.             if d.downloadFirmware(usb_bus_id, usb_device_id):
  132.                 if not silent:
  133.                     log.info('Done.')
  134.                 
  135.                 sys.exit(0)
  136.             else:
  137.                 log.error('Firmware download failed.')
  138.                 sys.exit(1)
  139.         else:
  140.             log.error('Device %s does not support or require firmware download.' % device_uri)
  141.             sys.exit(1)
  142.     finally:
  143.         d.close()
  144.  
  145. except KeyboardInterrupt:
  146.     log.error('User exit')
  147.  
  148.